웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > php

[PHP] 배열의 중복값 제거하기, array_unique()

Last Modified : 2019-08-01 / Created : 2015-02-03
58,808
View Count

PHP의 데이터 타입 중 배열이 많이 사용되죠. 여기서 배열의 특징은 여러 개의 값을 동시에 가질 수 있는 것입니다. 그래서 배열의 여러 값을 조작하는 많은 배열 함수가 존재합니다. 아래는 그 중에서 array_unique()에 대하여 알아보겠습니다.


! php 중복된 값 제거하기

만약 php의 배열 값들 중에서 중복된 값이 없는 유니크한 값만 존재하게하려면 어떻게 해야할까요? 쉽게 얘기해서 1, 2, 2, 3, 3, 3, 1 이라는 배열 값이 있다면 1, 2, 3만 가지도록 만드려고 합니다. 물론 가능한데요 아래에서 알아봅니다.




# PHP 서로 다른 값만 존재하는 배열 만들기

물론 일일이 수작업으로 같은 값을 제거할 수도을 있겠죠. 하지만 배열이 가진 값이 1000만개라면? 이는 도저히 불가능한 일임이 틀림없습니다. 너무 비효율적이죠. 아니면 foreach 반복문을 사용해 동일한 값을 제거하는 코드를 작성할 수 있겠지만 이 또한 간단한 코드는 아니며 비효율적이죠.

php는 이를 위하여 매우 유용한 array_unique() 함수를 제공합니다. 간단한 사용방법은 아래와 같습니다.

array_unique(배열명)

위와같이 이 함수를 사용하면 아주 간단하게 배열의 중복값 제거가 가능합니다. 아래에는 이 함수를 활용한 간단한 예제입니다. 더 자세하게 알아보겠습니다.



# php 에서 array_unique() 예제보기

예를들어 아래와 같은 $test라는 배열 값의 변수가 존재한다고 가정합니다. 이 변수는 중복된 값들을 다수 포함하고 있는데 이를 이 함수 array_unique()를 사용하여 중복된 값을 삭제할 수 있겠죠?
<?php
  $test = array("1", 2", "2", "3", "4", "4", "5", "5", "5");
  $test2 = array_unique($test);
?>

이 함수를 실행할 경우 반환되는 결과값은 아래와 같이 나타나게 됩니다.
print_r($test2);

[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5

이 함수를 통해 우리는 원하는 유니크한 값만을 가지는 $test2 변수를 간단하게 그리고 쉽게 얻을 수 있었습니다. 그럼 또다른 예제를 통하여 좀 더 알아봅니다. 아래는 문자타입의 값을 가지는 배열입니다.
<?php
  $notUnique = array("abc", "def", "efg", "efg", "efg", "hij");
  $uniqueOnly = array_unique($notUnique);

  print_r($uniqueOnly);
?>

코드를 실행한 결과입니다.
[0] => abc
[1] => def
[2] => efg
[3] => hij

보시는 것처럼 유일한 값들만 남았습니다. 매우 간단하죠.

여기까지 오직 하나의 유일한 배열값을 가지는 방법을 알아보았습니다.

Previous

[PHP] 서버에 특정 파일이 있는지 확인, file_exists(), is_file(), file()

Previous

[PHP] 문자열 길이 가져오기, strlen(), mb_strlen()